home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / geomview / source.lha / Geomview / include / hg4.h < prev    next >
C/C++ Source or Header  |  1992-02-25  |  2KB  |  66 lines

  1. /* Copyright (c) 1992 The Geometry Center; University of Minnesota
  2.    1300 South Second Street;  Minneapolis, MN  55454, USA;
  3.    
  4. This file is part of geomview/OOGL. geomview/OOGL is free software;
  5. you can redistribute it and/or modify it only under the terms given in
  6. the file COPYING, which you should have received along with this file.
  7. This and other related software may be obtained via anonymous ftp from
  8. geom.umn.edu; email: software@geom.umn.edu. */
  9.  
  10. /* Authors: Charlie Gunn, Pat Hanrahan, Stuart Levy, Tamara Munzner, Mark Phillips */
  11.  
  12. #ifndef HG4DEF
  13. #define HG4DEF
  14.  
  15. typedef float Hg4Coord;
  16. typedef Hg4Coord Hg4Tensor1[4];
  17. typedef Hg4Coord Hg4Tensor2[4][4];
  18.  
  19. #define X 0
  20. #define Y 1
  21. #define Z 2
  22. #define W 3
  23.  
  24. /* Tensor of Order 1 */
  25. extern char *Hg4Create();
  26. extern void Hg4Delete(/* Hg4Tensor1 p */);
  27.  
  28. extern void Hg4Print(/* Hg4Tensor1 p */);
  29. extern void Hg4From(/* Hg4Tensor1 p, Hg4Coord x, y, z, w */);
  30. extern void Hg4Copy(/* Hg4Tensor1 a, b */);
  31.  
  32. extern int Hg4Compare(/* Hg4Tensor1 a, b */);
  33. extern int Hg4Coincident(/* Hg4Tensor1 a, b */);
  34. extern int Hg4Undefined(/* Hg4Tensor1 a */);
  35. extern int Hg4Infinity(/* Hg4Tensor1 a, int dual */);
  36.  
  37. extern void Hg4Normalize(/* Hg4Tensor1 a, b */);
  38. extern void Hg4Pencil(
  39.     /* Hg4Coord t1, Hg4Tensor1 p1, Hg4Coord t2, Hg4Tensor1 p2, p*/);
  40.  
  41. extern void Hg4Transform(/* Transform t, Hg4Tensor1 p1, p2 */);
  42.  
  43. /* Tensor of Order 2 */
  44. extern void Hg4Print2(/* Hg4Tensor2 a */);
  45. extern void Hg4Copy2(/* Hg4Tensor2 a, b */);
  46.  
  47. extern int Hg4Compare2(/* Hg4Tensor2 a, b */);
  48. extern int Hg4Undefined2(/* Hg4Tensor2 a */);
  49. extern int Hg4Infinity2(/* Hg4Tensor2 a, int dual */);
  50.  
  51. extern void Hg4Transform2(/* Transform3 T, Hg4Tensor2 a, b */);
  52.  
  53. extern void Hg4AntiProductPiQi(/* Hg4Tensor2 p12, Hg4Tensor1 p1, p2 */);
  54. extern Hg4Coord Hg4ContractPiQi(/* Hg4Tensor1 p1, p2 */);
  55. extern void Hg4AntiContractPijQj(/* Hg4Tensor2 a, Hg4Tensor1 p1, p2 */);
  56. extern void Hg4ContractPijQjk(/* Hg4Tensor2 a, b, c */);
  57. extern Hg4Coord Hg4ContractPii(/* Hg4Tensor2 a */);
  58.  
  59. extern int Hg4Intersect2(/* Hg4Tensor2 a, Hg4Tensor1 b, c */);
  60. extern int Hg4Intersect3(/* Hg4Tensor1 a, b, c, p, int dual */);
  61. extern int Hg4Intersect4(/* Hg4Tensor2 a, b, Hg4Tensor1 pl, pt */);
  62.  
  63. extern void Hg4Dual(/* Hg4Tensor2 L, K */);
  64.  
  65. #endif
  66.